A System on a Chip (SoC) is an integrated circuit (IC) that integrates all or most components of a computer or other electronic system into a single chip. An SoC may contain both digital and analog components on a single chip substrate. SoCs are commonly used in mobile electronics and embedded systems because of their low power consumption and compact size.
The complexity of the hardware and software for SoCs makes it difficult to predict and detect the activity in various hardware components in the SoC during runtime. Specifically, a multitude of clocks, tasks, and other activities in the hardware all consume power. Estimating, optimizing, and debugging power consumption requires detailed knowledge of how the software uses the hardware. One method of hardware monitoring is to physically create observation points inside the SoC. For instance, a clock can be observed on a hardware pin as a toggling signal using a logic analyzer or oscilloscope. Also, these observation points can be made accessible to an outside debugger using a Joint Test Action Group (JTAG) connection.
Using hardware observation points enables hardware monitoring in a non-invasive manner without affecting the normal operation of the SoC. But, this method of hardware monitoring has several drawbacks. First, clocks and other signals often use high frequencies. For instance, many SoCs include a clock with a frequency greater than 1 gigahertz (GHz). Signals with such high frequencies are very difficult, if not impossible, to observe on normal pins. Second, the method does not scale well when more and more signals are to be observed. Signals may be multiplexed in order to keep the number of pins feasible, but then it is only possible to monitor a subset of all desired observation points at a single time. Third, external measurement equipment capable of monitoring these observation points may be expensive or large. This expense and size may be prohibitive in some applications. Fourth, synchronizing the measurements from these observation points with other activities, such as a trace from a CPU or input stimuli (like radio data for mobile devices), may be difficult.
As such, there is a need for improved hardware monitoring that addresses these issues.